{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-imaging-jsf",
      "artifactVersion": "2021.63.8",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.picture.core",
          "org.nuxeo.ecm.platform.picture.jsf",
          "org.nuxeo.ecm.platform.picture.rest"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture",
        "id": "grp:org.nuxeo.ecm.platform.picture",
        "name": "org.nuxeo.ecm.platform.picture",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2021.63"
      },
      "bundleId": "org.nuxeo.ecm.platform.picture.jsf",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.rest.URLService--urlpatterns",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.web.plugins/Contributions/org.nuxeo.ecm.platform.picture.web.plugins--urlpatterns",
              "id": "org.nuxeo.ecm.platform.picture.web.plugins--urlpatterns",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.rest.URLService",
                "name": "org.nuxeo.ecm.platform.ui.web.rest.URLService",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"urlpatterns\" target=\"org.nuxeo.ecm.platform.ui.web.rest.URLService\">\n    <urlPattern enabled=\"true\" name=\"downloadPicture\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>false</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>downloadPicture</codecName>\n      <actionBinding>#{pictureManager.download}</actionBinding>\n      <documentViewBinding>\n        #{restHelper.documentView}\n      </documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n    </urlPattern>\n\n    <urlPattern enabled=\"true\" name=\"downloadThumbnail\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>false</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>downloadThumbnail</codecName>\n      <actionBinding>#{pictureManager.downloadThumbnail}</actionBinding>\n      <documentViewBinding>\n        #{restHelper.documentView}\n      </documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n    </urlPattern>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.web.plugins",
          "name": "org.nuxeo.ecm.platform.picture.web.plugins",
          "requirements": [],
          "resolutionOrder": 397,
          "services": [],
          "startOrder": 395,
          "version": "2021.63.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.web.plugins\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.rest.URLService\"\n             point=\"urlpatterns\">\n    <urlPattern name=\"downloadPicture\" enabled=\"true\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>false</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>downloadPicture</codecName>\n      <actionBinding>#{pictureManager.download}</actionBinding>\n      <documentViewBinding>\n        #{restHelper.documentView}\n      </documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n    </urlPattern>\n\n    <urlPattern name=\"downloadThumbnail\" enabled=\"true\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>false</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>downloadThumbnail</codecName>\n      <actionBinding>#{pictureManager.downloadThumbnail}</actionBinding>\n      <documentViewBinding>\n        #{restHelper.documentView}\n      </documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n    </urlPattern>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/imaging-urlservice-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService--codecs",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.codec/Contributions/org.nuxeo.ecm.platform.picture.jsf.codec--codecs",
              "id": "org.nuxeo.ecm.platform.picture.jsf.codec--codecs",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "name": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"codecs\" target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\">\n    <documentViewCodec class=\"org.nuxeo.ecm.platform.url.codec.DocumentFileCodec\" enabled=\"true\" name=\"downloadPicture\" prefix=\"nxpicsfile\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.codec",
          "name": "org.nuxeo.ecm.platform.picture.jsf.codec",
          "requirements": [
            "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService"
          ],
          "resolutionOrder": 557,
          "services": [],
          "startOrder": 384,
          "version": "2021.63.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.jsf.codec\">\n\n  <require>org.nuxeo.ecm.platform.url.service.DocumentViewCodecService</require>\n\n  <extension\n          target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\"\n          point=\"codecs\">\n    <documentViewCodec name=\"downloadPicture\" enabled=\"true\"\n                       prefix=\"nxpicsfile\"\n                       class=\"org.nuxeo.ecm.platform.url.codec.DocumentFileCodec\"/>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/imaging-codec-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--bundles",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.theme/Contributions/org.nuxeo.ecm.platform.picture.theme--bundles",
              "id": "org.nuxeo.ecm.platform.picture.theme--bundles",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"bundles\" target=\"org.nuxeo.ecm.platform.WebResources\">\n    <bundle name=\"nuxeo_includes\">\n      <resources append=\"true\">\n        <resource>picture_book.css</resource>\n      </resources>\n    </bundle>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--resources",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.theme/Contributions/org.nuxeo.ecm.platform.picture.theme--resources",
              "id": "org.nuxeo.ecm.platform.picture.theme--resources",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"resources\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <resource name=\"picture_book.css\">\n      <path>themes/css/picture_book.css</path>\n    </resource>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.theme",
          "name": "org.nuxeo.ecm.platform.picture.theme",
          "requirements": [
            "org.nuxeo.theme.nuxeo.webapp"
          ],
          "resolutionOrder": 657,
          "services": [],
          "startOrder": 393,
          "version": "2021.63.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.theme\">\n\n  <require>org.nuxeo.theme.nuxeo.webapp</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"bundles\">\n    <bundle name=\"nuxeo_includes\">\n      <resources append=\"true\">\n        <resource>picture_book.css</resource>\n      </resources>\n    </bundle>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"resources\">\n\n    <resource name=\"picture_book.css\">\n      <path>themes/css/picture_book.css</path>\n    </resource>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/theme-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.actions/Contributions/org.nuxeo.ecm.platform.picture.actions--actions",
              "id": "org.nuxeo.ecm.platform.picture.actions--actions",
              "registrationOrder": 25,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action id=\"triggerContentViewSlideshow\" label=\"label.contentview.trigger.slideshow\" order=\"70\" type=\"template\">\n      <category>CONTENT_VIEW_ACTIONS</category>\n      <properties>\n        <property name=\"template\">\n          /incl/action/content_view_slideshow.xhtml\n        </property>\n      </properties>\n      <filter-id>contentViewShowSlideshow</filter-id>\n    </action>\n\n    <action icon=\"/icons/page_rotateleft.gif\" id=\"pictureRotate90left\" label=\"action.picture.rotateLeft\" link=\"#{pictureManager.rotate90left}\" order=\"100\" type=\"link\">\n      <category>IMAGE_PROCESSING</category>\n      <filter-id>hasPictureFacet</filter-id>\n      <filter-id>canRotatePicture</filter-id>\n    </action>\n\n    <action icon=\"/icons/page_rotateright.gif\" id=\"pictureRotate90right\" label=\"action.picture.rotateRight\" link=\"#{pictureManager.rotate90right}\" order=\"200\" type=\"link\">\n      <category>IMAGE_PROCESSING</category>\n      <filter-id>hasPictureFacet</filter-id>\n      <filter-id>canRotatePicture</filter-id>\n    </action>\n\n    <action enabled=\"false\" icon=\"/icons/generate.png\" id=\"recomputePictureViews\" label=\"label.imaging.recompute.picture.views\" link=\"#{imagingRecomputeActions.recomputePictureViews}\" order=\"-100\">\n      <category>DOCUMENT_UPPER_ACTION</category>\n      <filter-id>hasPictureFacet</filter-id>\n      <filter-id>canRecomputePictureViews</filter-id>\n    </action>\n\n    <action id=\"Imaging\" label=\"adm.imaging\" link=\"/incl/imaging/imaging_admin_recompute_views.xhtml\" order=\"150\" type=\"admin_rest_document_link\">\n      <category>NUXEO_ADMIN</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.actions/Contributions/org.nuxeo.ecm.platform.picture.actions--filters",
              "id": "org.nuxeo.ecm.platform.picture.actions--filters",
              "registrationOrder": 20,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <filter id=\"grantpicturebook\">\n      <rule grant=\"true\">\n        <type>PictureBook</type>\n      </rule>\n    </filter>\n\n    <!-- not used since 5.5, keep it for compatibility -->\n    <filter id=\"grantpicture\">\n      <rule grant=\"true\">\n        <type>Picture</type>\n      </rule>\n    </filter>\n\n    <filter append=\"true\" id=\"create\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <type>PictureBook</type>\n      </rule>\n    </filter>\n\n    <filter append=\"true\" id=\"importFile\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <type>PictureBook</type>\n      </rule>\n    </filter>\n\n    <filter id=\"contentViewShowSlideshow\">\n      <rule grant=\"true\">\n        <condition>\n          #{nxu:test(empty showSlideshow,\n          contentView.currentResultLayout.showSlideshow,\n          showSlideshow)}\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canRecomputePictureViews\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"canRotatePicture\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.actions",
          "name": "org.nuxeo.ecm.platform.picture.actions",
          "requirements": [
            "org.nuxeo.ecm.platform.actions"
          ],
          "resolutionOrder": 668,
          "services": [],
          "startOrder": 377,
          "version": "2021.63.8",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.actions\">\n\n  <require>org.nuxeo.ecm.platform.actions</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n             point=\"actions\">\n\n    <action id=\"triggerContentViewSlideshow\" order=\"70\"\n            label=\"label.contentview.trigger.slideshow\" type=\"template\">\n      <category>CONTENT_VIEW_ACTIONS</category>\n      <properties>\n        <property name=\"template\">\n          /incl/action/content_view_slideshow.xhtml\n        </property>\n      </properties>\n      <filter-id>contentViewShowSlideshow</filter-id>\n    </action>\n\n    <action id=\"pictureRotate90left\" order=\"100\" type=\"link\"\n            link=\"#{pictureManager.rotate90left}\"\n            icon=\"/icons/page_rotateleft.gif\" label=\"action.picture.rotateLeft\">\n      <category>IMAGE_PROCESSING</category>\n      <filter-id>hasPictureFacet</filter-id>\n      <filter-id>canRotatePicture</filter-id>\n    </action>\n\n    <action id=\"pictureRotate90right\" order=\"200\" type=\"link\"\n            link=\"#{pictureManager.rotate90right}\"\n            icon=\"/icons/page_rotateright.gif\" label=\"action.picture.rotateRight\">\n      <category>IMAGE_PROCESSING</category>\n      <filter-id>hasPictureFacet</filter-id>\n      <filter-id>canRotatePicture</filter-id>\n    </action>\n\n    <action id=\"recomputePictureViews\" enabled=\"false\" order=\"-100\"\n            link=\"#{imagingRecomputeActions.recomputePictureViews}\"\n            label=\"label.imaging.recompute.picture.views\" icon=\"/icons/generate.png\">\n      <category>DOCUMENT_UPPER_ACTION</category>\n      <filter-id>hasPictureFacet</filter-id>\n      <filter-id>canRecomputePictureViews</filter-id>\n    </action>\n\n    <action id=\"Imaging\" link=\"/incl/imaging/imaging_admin_recompute_views.xhtml\" label=\"adm.imaging\"\n            type=\"admin_rest_document_link\"\n            order=\"150\">\n      <category>NUXEO_ADMIN</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n             point=\"filters\">\n\n    <filter id=\"grantpicturebook\">\n      <rule grant=\"true\">\n        <type>PictureBook</type>\n      </rule>\n    </filter>\n\n    <!-- not used since 5.5, keep it for compatibility -->\n    <filter id=\"grantpicture\">\n      <rule grant=\"true\">\n        <type>Picture</type>\n      </rule>\n    </filter>\n\n    <filter id=\"create\" append=\"true\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <type>PictureBook</type>\n      </rule>\n    </filter>\n\n    <filter id=\"importFile\" append=\"true\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <type>PictureBook</type>\n      </rule>\n    </filter>\n\n    <filter id=\"contentViewShowSlideshow\">\n      <rule grant=\"true\">\n        <condition>\n          #{nxu:test(empty showSlideshow,\n          contentView.currentResultLayout.showSlideshow,\n          showSlideshow)}\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canRecomputePictureViews\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"canRotatePicture\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgettypes",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.layouts/Contributions/org.nuxeo.ecm.platform.picture.jsf.layouts--widgettypes",
              "id": "org.nuxeo.ecm.platform.picture.jsf.layouts--widgettypes",
              "registrationOrder": 17,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"widgettypes\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widgetType name=\"picture_view\">\n      <configuration>\n        <sinceVersion>5.7.2</sinceVersion>\n        <title>Picture view</title>\n        <description>\n          <p>\n            The picture_view widget displays the configured View of a document\n            having the Picture facet.\n          </p>\n          <p>\n            It requires the following fields configuration: first field maps\n            the document model.\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <properties>\n          <layouts mode=\"view\">\n            <layout name=\"picture_view_widget_type_properties_view\">\n              <rows>\n                <row>\n                  <widget>pictureView</widget>\n                </row>\n                <row>\n                  <widget>width</widget>\n                </row>\n                <row>\n                  <widget>height</widget>\n                </row>\n              </rows>\n              <widget name=\"pictureView\" type=\"selectOneListbox\">\n                <labels>\n                  <label mode=\"any\">Picture view</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The name of the picture view, defaults to\n                    'Medium'.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>pictureView</field>\n                </fields>\n                <selectOptions>\n                  <option itemLabel=\"Medium (default value)\" itemValue=\"Medium\"/>\n                  <option itemLabel=\"Small\" itemValue=\"Small\"/>\n                  <option itemLabel=\"Thumbnail\" itemValue=\"Thumbnail\"/>\n                  <option itemLabel=\"OriginalJpeg\" itemValue=\"OriginalJpeg\"/>\n                </selectOptions>\n              </widget>\n              <widget name=\"width\" type=\"int\">\n                <labels>\n                  <label mode=\"any\">Width</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The width of the image.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>width</field>\n                </fields>\n              </widget>\n              <widget name=\"height\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Height</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The height of the image.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>height</field>\n                </fields>\n              </widget>\n            </layout>\n          </layouts>\n        </properties>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">/widgets/picture_view_widget_template.xhtml</property>\n    </widgetType>\n\n    <widgetType name=\"dimensions\">\n      <configuration>\n        <sinceVersion>7.1</sinceVersion>\n        <title>Dimensions</title>\n        <description>\n          <p>\n            The dimensions widget displays the dimensions of an image as \"{width} x {height}\".\n          </p>\n          <p>\n            The first field maps to the width, the second one to the height.\n          </p>\n        </description>\n        <handlingLabels>false</handlingLabels>\n        <categories>\n          <category>configuration_not_ready</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <fields>\n          <list>false</list>\n          <complex>false</complex>\n          <supportedTypes>\n            <type>string</type>\n          </supportedTypes>\n        </fields>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">/widgets/dimensions_widget_template.xhtml</property>\n    </widgetType>\n\n    <widgetType name=\"picture_additional_formats\">\n      <configuration>\n        <sinceVersion>7.1</sinceVersion>\n        <title>Picture additional formats</title>\n        <description>\n          <p>\n            This widget displays the list of additional\n            formats for the given Picture document.\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/picture_additional_formats_widget_template.xhtml\n      </property>\n    </widgetType>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.layouts/Contributions/org.nuxeo.ecm.platform.picture.jsf.layouts--widgets",
              "id": "org.nuxeo.ecm.platform.picture.jsf.layouts--widgets",
              "registrationOrder": 20,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"imageFile\" type=\"image\">\n      <labels>\n        <label mode=\"any\">label.file.content</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>file:content</field>\n        <field>file:content/filename</field>\n      </fields>\n    </widget>\n\n    <widget name=\"summary_picture_view\" type=\"picture_view\"/>\n\n    <widget name=\"infoViewPictureView\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"pictureView\" type=\"picture_view\"/>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_info_box\" type=\"info_box\"/>\n\n    <widget name=\"picture_info_dimensions\" type=\"dimensions\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.dimensions</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/width</field>\n        <field>picture:info/height</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"picture_info_format\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.format</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/format</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"picture_info_colorspace\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.colorSpace</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/colorSpace</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"picture_info_depth\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.depth</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/depth</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"summary_picture_info\" type=\"container\">\n      <labels>\n        <label mode=\"any\">label.header.picture.info</label>\n      </labels>\n      <translated>true</translated>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <subWidgets>\n        <widget name=\"picture_info\" type=\"layout\">\n          <properties widgetMode=\"any\">\n            <property name=\"name\">picture_info</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_exif\" type=\"container\">\n      <labels>\n        <label mode=\"any\">label.header.info.exif</label>\n      </labels>\n      <translated>true</translated>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <subWidgets>\n        <widget name=\"exif_info\" type=\"layout\">\n          <properties widgetMode=\"any\">\n            <property name=\"name\">exif_info</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_iptc\" type=\"container\">\n      <labels>\n        <label mode=\"any\">label.header.info.iptc</label>\n      </labels>\n      <translated>true</translated>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <subWidgets>\n        <widget name=\"iptc_info\" type=\"layout\">\n          <properties widgetMode=\"any\">\n            <property name=\"name\">iptc_info</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_additional_formats\" type=\"picture_additional_formats\">\n      <labels>\n        <label mode=\"any\">label.header.picture.additional.formats</label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <widgetModes>\n        <mode value=\"any\">#{not empty currentDocumentAsBlobHolder.blob ? 'view' : 'hidden'}</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"summary_picture_actions\" type=\"documentActionsWithForms\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">IMAGE_PROCESSING</property>\n        <property name=\"styleClass\">grayBox pictureActions</property>\n        <property name=\"actionStyleClass\">button</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"useAjaxForm\">true</property>\n        <property name=\"ignoreTemplateProperty\">true</property>\n      </properties>\n      <widgetModes>\n        <mode value=\"any\">#{not empty currentDocumentAsBlobHolder.blob ? 'view' : 'hidden'}</mode>\n      </widgetModes>\n    </widget>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.layouts/Contributions/org.nuxeo.ecm.platform.picture.jsf.layouts--actions",
              "id": "org.nuxeo.ecm.platform.picture.jsf.layouts--actions",
              "registrationOrder": 34,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action id=\"summary_picture_view\" order=\"50\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_view</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_actions\" order=\"100\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_actions</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_view\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"infoViewPictureView\" order=\"100\" type=\"widget\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewPictureView</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_description\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_states\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_contributors\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_info_box\" order=\"100\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_info_box</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_info\" order=\"200\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_info</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_exif\" order=\"220\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_exif</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <!-- deprecated see NXP-16336 -->\n    <action enabled=\"false\" id=\"summary_picture_iptc\" order=\"240\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_iptc</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_additional_formats\" order=\"300\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_additional_formats</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.layouts/Contributions/org.nuxeo.ecm.platform.picture.jsf.layouts--filters",
              "id": "org.nuxeo.ecm.platform.picture.jsf.layouts--filters",
              "registrationOrder": 25,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <filter id=\"notHasPicture\">\n      <rule grant=\"false\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"hasPicture\">\n      <rule grant=\"true\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n    <filter append=\"true\" id=\"denyInfoViewPreview\">\n      <rule grant=\"false\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.layouts/Contributions/org.nuxeo.ecm.platform.picture.jsf.layouts--layouts",
              "id": "org.nuxeo.ecm.platform.picture.jsf.layouts--layouts",
              "registrationOrder": 19,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <!-- deprecated since 5.6 -->\n    <layout name=\"picture_summary_layout\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_summary_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_picture_view</widget>\n          <widget>summary_current_document_files</widget>\n          <widget>summary_current_document_comments</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_description</widget>\n          <widget>summary_current_document_states</widget>\n          <widget>summary_current_document_contributors</widget>\n          <widget>summary_current_document_custom_actions</widget>\n          <widget>summary_current_document_tagging</widget>\n          <widget>summary_current_document_relations</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_publications</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_single_tasks</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"picture\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>imageFile</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"exif_info\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>date_time_original</widget>\n        </row>\n        <row>\n          <widget>pixel_xdimension</widget>\n        </row>\n        <row>\n          <widget>pixel_ydimension</widget>\n        </row>\n        <row>\n          <widget>orientation</widget>\n        </row>\n        <row>\n          <widget>equipment</widget>\n        </row>\n        <row>\n          <widget>fnumber</widget>\n        </row>\n        <row>\n          <widget>exposure_time</widget>\n        </row>\n        <row>\n          <widget>iso_speed_ratings</widget>\n        </row>\n      </rows>\n      <widget name=\"date_time_original\" type=\"datetime\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:date_time_original</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"pattern\">#{nxu:basicDateFormatter()}</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"format\">#{nxu:basicDateFormatter()}</property>\n          <property name=\"styleClass\">dataInputTextDate</property>\n        </properties>\n      </widget>\n      <widget name=\"pixel_xdimension\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:pixel_xdimension</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"pixel_ydimension\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:pixel_ydimension</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"orientation\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:orientation</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"equipment\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:equipment</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"fnumber\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:fnumber</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"exposure_time\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:exposure_time</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"iso_speed_ratings\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:iso_speed_ratings</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"iptc_info\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>object_name</widget>\n        </row>\n        <row>\n          <widget>headline</widget>\n        </row>\n        <row>\n          <widget>keywords</widget>\n        </row>\n        <row>\n          <widget>date_created</widget>\n        </row>\n        <row>\n          <widget>country_or_primary_location</widget>\n        </row>\n        <row>\n          <widget>province_or_state</widget>\n        </row>\n        <row>\n          <widget>city</widget>\n        </row>\n        <row>\n          <widget>caption</widget>\n        </row>\n        <row>\n          <widget>by_line</widget>\n        </row>\n        <row>\n          <widget>by_line_title</widget>\n        </row>\n        <row>\n          <widget>copyright_notice</widget>\n        </row>\n        <row>\n          <widget>credit</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>writer</widget>\n        </row>\n      </rows>\n      <widget name=\"caption\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:caption</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"country_or_primary_location\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:country_or_primary_location</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"province_or_state\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:province_or_state</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"city\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:city</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"by_line\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:by_line</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"by_line_title\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:by_line_title</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"copyright_notice\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:copyright_notice</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"credit\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:credit</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"date_created\" type=\"datetime\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:date_created</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"pattern\">#{nxu:basicDateFormatter()}</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"format\">#{nxu:basicDateFormatter()}</property>\n          <property name=\"styleClass\">dataInputTextDate</property>\n        </properties>\n      </widget>\n      <widget name=\"headline\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:headline</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"keywords\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:keywords</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"object_name\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:object_name</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"source\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:source</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"writer\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:writer</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"picture_info\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>picture_info_dimensions</widget>\n        </row>\n        <row>\n          <widget>picture_info_format</widget>\n        </row>\n        <row>\n          <widget>picture_info_colorspace</widget>\n        </row>\n        <row>\n          <widget>picture_info_depth</widget>\n        </row>\n      </rows>\n    </layout>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.jsf.layouts",
          "name": "org.nuxeo.ecm.platform.picture.jsf.layouts",
          "requirements": [
            "org.nuxeo.ecm.platform.forms.layouts.webapp.summary"
          ],
          "resolutionOrder": 683,
          "services": [],
          "startOrder": 385,
          "version": "2021.63.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.jsf.layouts\">\n\n  <require>org.nuxeo.ecm.platform.forms.layouts.webapp.summary</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgettypes\">\n\n    <widgetType name=\"picture_view\">\n      <configuration>\n        <sinceVersion>5.7.2</sinceVersion>\n        <title>Picture view</title>\n        <description>\n          <p>\n            The picture_view widget displays the configured View of a document\n            having the Picture facet.\n          </p>\n          <p>\n            It requires the following fields configuration: first field maps\n            the document model.\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <properties>\n          <layouts mode=\"view\">\n            <layout name=\"picture_view_widget_type_properties_view\">\n              <rows>\n                <row>\n                  <widget>pictureView</widget>\n                </row>\n                <row>\n                  <widget>width</widget>\n                </row>\n                <row>\n                  <widget>height</widget>\n                </row>\n              </rows>\n              <widget name=\"pictureView\" type=\"selectOneListbox\">\n                <labels>\n                  <label mode=\"any\">Picture view</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The name of the picture view, defaults to\n                    'Medium'.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>pictureView</field>\n                </fields>\n                <selectOptions>\n                  <option itemLabel=\"Medium (default value)\" itemValue=\"Medium\" />\n                  <option itemLabel=\"Small\" itemValue=\"Small\" />\n                  <option itemLabel=\"Thumbnail\" itemValue=\"Thumbnail\" />\n                  <option itemLabel=\"OriginalJpeg\" itemValue=\"OriginalJpeg\" />\n                </selectOptions>\n              </widget>\n              <widget name=\"width\" type=\"int\">\n                <labels>\n                  <label mode=\"any\">Width</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The width of the image.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>width</field>\n                </fields>\n              </widget>\n              <widget name=\"height\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Height</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The height of the image.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>height</field>\n                </fields>\n              </widget>\n            </layout>\n          </layouts>\n        </properties>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">/widgets/picture_view_widget_template.xhtml</property>\n    </widgetType>\n\n    <widgetType name=\"dimensions\">\n      <configuration>\n        <sinceVersion>7.1</sinceVersion>\n        <title>Dimensions</title>\n        <description>\n          <p>\n            The dimensions widget displays the dimensions of an image as \"{width} x {height}\".\n          </p>\n          <p>\n            The first field maps to the width, the second one to the height.\n          </p>\n        </description>\n        <handlingLabels>false</handlingLabels>\n        <categories>\n          <category>configuration_not_ready</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <fields>\n          <list>false</list>\n          <complex>false</complex>\n          <supportedTypes>\n            <type>string</type>\n          </supportedTypes>\n        </fields>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">/widgets/dimensions_widget_template.xhtml</property>\n    </widgetType>\n\n    <widgetType name=\"picture_additional_formats\">\n      <configuration>\n        <sinceVersion>7.1</sinceVersion>\n        <title>Picture additional formats</title>\n        <description>\n          <p>\n            This widget displays the list of additional\n            formats for the given Picture document.\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/picture_additional_formats_widget_template.xhtml\n      </property>\n    </widgetType>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"imageFile\" type=\"image\">\n      <labels>\n        <label mode=\"any\">label.file.content</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>file:content</field>\n        <field>file:content/filename</field>\n      </fields>\n    </widget>\n\n    <widget name=\"summary_picture_view\" type=\"picture_view\" />\n\n    <widget name=\"infoViewPictureView\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"pictureView\" type=\"picture_view\" />\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_info_box\" type=\"info_box\" />\n\n    <widget name=\"picture_info_dimensions\" type=\"dimensions\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.dimensions</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/width</field>\n        <field>picture:info/height</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"picture_info_format\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.format</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/format</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"picture_info_colorspace\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.colorSpace</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/colorSpace</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"picture_info_depth\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.widget.picture.depth</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>picture:info/depth</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"any\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"summary_picture_info\" type=\"container\">\n      <labels>\n        <label mode=\"any\">label.header.picture.info</label>\n      </labels>\n      <translated>true</translated>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <subWidgets>\n        <widget name=\"picture_info\" type=\"layout\">\n          <properties widgetMode=\"any\">\n            <property name=\"name\">picture_info</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_exif\" type=\"container\">\n      <labels>\n        <label mode=\"any\">label.header.info.exif</label>\n      </labels>\n      <translated>true</translated>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <subWidgets>\n        <widget name=\"exif_info\" type=\"layout\">\n          <properties widgetMode=\"any\">\n            <property name=\"name\">exif_info</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_iptc\" type=\"container\">\n      <labels>\n        <label mode=\"any\">label.header.info.iptc</label>\n      </labels>\n      <translated>true</translated>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <subWidgets>\n        <widget name=\"iptc_info\" type=\"layout\">\n          <properties widgetMode=\"any\">\n            <property name=\"name\">iptc_info</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"summary_picture_additional_formats\" type=\"picture_additional_formats\">\n      <labels>\n        <label mode=\"any\">label.header.picture.additional.formats</label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <widgetModes>\n        <mode value=\"any\">#{not empty currentDocumentAsBlobHolder.blob ? 'view' : 'hidden'}</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"summary_picture_actions\" type=\"documentActionsWithForms\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">IMAGE_PROCESSING</property>\n        <property name=\"styleClass\">grayBox pictureActions</property>\n        <property name=\"actionStyleClass\">button</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"useAjaxForm\">true</property>\n        <property name=\"ignoreTemplateProperty\">true</property>\n      </properties>\n      <widgetModes>\n        <mode value=\"any\">#{not empty currentDocumentAsBlobHolder.blob ? 'view' : 'hidden'}</mode>\n      </widgetModes>\n    </widget>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"summary_picture_view\" type=\"widget\" order=\"50\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_view</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_actions\" type=\"widget\" order=\"100\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_actions</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_view\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"infoViewPictureView\" type=\"widget\" order=\"100\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewPictureView</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_description\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_states\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_contributors\">\n      <filter-id>notHasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_info_box\" type=\"widget\" order=\"100\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_info_box</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_info\" type=\"widget\" order=\"200\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_info</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_exif\" type=\"widget\" order=\"220\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_exif</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <!-- deprecated see NXP-16336 -->\n    <action id=\"summary_picture_iptc\" type=\"widget\" order=\"240\" enabled=\"false\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_iptc</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n    <action id=\"summary_picture_additional_formats\" type=\"widget\" order=\"300\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_picture_additional_formats</property>\n      </properties>\n      <filter-id>hasPicture</filter-id>\n    </action>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"filters\">\n\n    <filter id=\"notHasPicture\">\n      <rule grant=\"false\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"hasPicture\">\n      <rule grant=\"true\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"denyInfoViewPreview\" append=\"true\">\n      <rule grant=\"false\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"layouts\">\n\n    <!-- deprecated since 5.6 -->\n    <layout name=\"picture_summary_layout\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_summary_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_picture_view</widget>\n          <widget>summary_current_document_files</widget>\n          <widget>summary_current_document_comments</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_description</widget>\n          <widget>summary_current_document_states</widget>\n          <widget>summary_current_document_contributors</widget>\n          <widget>summary_current_document_custom_actions</widget>\n          <widget>summary_current_document_tagging</widget>\n          <widget>summary_current_document_relations</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_publications</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_single_tasks</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"picture\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>imageFile</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"exif_info\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>date_time_original</widget>\n        </row>\n        <row>\n          <widget>pixel_xdimension</widget>\n        </row>\n        <row>\n          <widget>pixel_ydimension</widget>\n        </row>\n        <row>\n          <widget>orientation</widget>\n        </row>\n        <row>\n          <widget>equipment</widget>\n        </row>\n        <row>\n          <widget>fnumber</widget>\n        </row>\n        <row>\n          <widget>exposure_time</widget>\n        </row>\n        <row>\n          <widget>iso_speed_ratings</widget>\n        </row>\n      </rows>\n      <widget name=\"date_time_original\" type=\"datetime\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:date_time_original</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"pattern\">#{nxu:basicDateFormatter()}</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"format\">#{nxu:basicDateFormatter()}</property>\n          <property name=\"styleClass\">dataInputTextDate</property>\n        </properties>\n      </widget>\n      <widget name=\"pixel_xdimension\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:pixel_xdimension</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"pixel_ydimension\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:pixel_ydimension</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"orientation\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:orientation</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"equipment\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:equipment</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"fnumber\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:fnumber</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"exposure_time\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:exposure_time</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"iso_speed_ratings\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>imd:iso_speed_ratings</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"iptc_info\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>object_name</widget>\n        </row>\n        <row>\n          <widget>headline</widget>\n        </row>\n        <row>\n          <widget>keywords</widget>\n        </row>\n        <row>\n          <widget>date_created</widget>\n        </row>\n        <row>\n          <widget>country_or_primary_location</widget>\n        </row>\n        <row>\n          <widget>province_or_state</widget>\n        </row>\n        <row>\n          <widget>city</widget>\n        </row>\n        <row>\n          <widget>caption</widget>\n        </row>\n        <row>\n          <widget>by_line</widget>\n        </row>\n        <row>\n          <widget>by_line_title</widget>\n        </row>\n        <row>\n          <widget>copyright_notice</widget>\n        </row>\n        <row>\n          <widget>credit</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>writer</widget>\n        </row>\n      </rows>\n      <widget name=\"caption\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:caption</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"country_or_primary_location\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:country_or_primary_location</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"province_or_state\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:province_or_state</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"city\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:city</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"by_line\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:by_line</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"by_line_title\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:by_line_title</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"copyright_notice\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:copyright_notice</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"credit\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:credit</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"date_created\" type=\"datetime\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:date_created</field>\n        </fields>\n        <properties widgetMode=\"view\">\n          <property name=\"pattern\">#{nxu:basicDateFormatter()}</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"format\">#{nxu:basicDateFormatter()}</property>\n          <property name=\"styleClass\">dataInputTextDate</property>\n        </properties>\n      </widget>\n      <widget name=\"headline\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:headline</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"keywords\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:keywords</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"object_name\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:object_name</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"source\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:source</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n      <widget name=\"writer\" type=\"text\">\n        <translated>true</translated>\n        <fields>\n          <field>iptc:writer</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"styleClass\">dataInputText</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"picture_info\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>picture_info_dimensions</widget>\n        </row>\n        <row>\n          <widget>picture_info_format</widget>\n        </row>\n        <row>\n          <widget>picture_info_colorspace</widget>\n        </row>\n        <row>\n          <widget>picture_info_depth</widget>\n        </row>\n      </rows>\n    </layout>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/imaging-layouts-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent--MimeTypePreviewer",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.preview.jsf.adapter.contrib/Contributions/org.nuxeo.ecm.platform.picture.preview.jsf.adapter.contrib--MimeTypePreviewer",
              "id": "org.nuxeo.ecm.platform.picture.preview.jsf.adapter.contrib--MimeTypePreviewer",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent",
                "name": "org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"MimeTypePreviewer\" target=\"org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent\">\n    <previewer class=\"org.nuxeo.ecm.platform.picture.preview.adapter.PicturePreviewer\">\n      <pattern>image.*</pattern>\n    </previewer>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf/org.nuxeo.ecm.platform.picture.preview.jsf.adapter.contrib",
          "name": "org.nuxeo.ecm.platform.picture.preview.jsf.adapter.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.preview.jsf.adapter.contrib"
          ],
          "resolutionOrder": 710,
          "services": [],
          "startOrder": 390,
          "version": "2021.63.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.preview.jsf.adapter.contrib\">\n\n  <require>org.nuxeo.ecm.platform.preview.jsf.adapter.contrib</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent\"\n    point=\"MimeTypePreviewer\">\n    <previewer class=\"org.nuxeo.ecm.platform.picture.preview.adapter.PicturePreviewer\">\n      <pattern>image.*</pattern>\n    </previewer>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/preview-adapter-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-imaging-jsf-2021.63.8.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.jsf",
      "id": "org.nuxeo.ecm.platform.picture.jsf",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.24\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo Picture Imaging DM\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.picture.jsf;singleton:=true\r\nBundle-Vendor: Nuxeo\r\nBundle-Category: web,stateless\r\nNuxeo-Component: OSGI-INF/imaging-layouts-contrib.xml,OSGI-INF/imaging\r\n -codec-contrib.xml,OSGI-INF/actions-contrib.xml,OSGI-INF/imaging-urls\r\n ervice-contrib.xml,OSGI-INF/theme-contrib.xml,OSGI-INF/preview-adapte\r\n r-contrib.xml\r\nEclipse-LazyStart: true\r\nRequire-Bundle: org.nuxeo.ecm.platform.types.api,org.nuxeo.ecm.webapp.\r\n base,org.nuxeo.ecm.platform.search.api,org.nuxeo.ecm.platform.web.com\r\n mon,org.nuxeo.ecm.platform.url.core\r\n\r\n",
      "maxResolutionOrder": 710,
      "minResolutionOrder": 397,
      "packages": [
        "nuxeo-jsf-ui"
      ],
      "requirements": [
        "org.nuxeo.ecm.platform.types.api",
        "org.nuxeo.ecm.webapp.base",
        "org.nuxeo.ecm.platform.search.api",
        "org.nuxeo.ecm.platform.web.common",
        "org.nuxeo.ecm.platform.url.core"
      ],
      "version": "2021.63.8"
    }
  ],
  "creationDate": 1732721792848,
  "key": "Nuxeo Platform-2021.63",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.admin.center.analytics.dashboards",
        "org.nuxeo.admin.center.jsf",
        "org.nuxeo.admin.center.monitoring",
        "org.nuxeo.admin.center.oauth.opensocial",
        "org.nuxeo.ecm.automation.jsf",
        "org.nuxeo.elasticsearch.web",
        "org.nuxeo.ecm.localconf.web",
        "org.nuxeo.ecm.actions.jsf",
        "org.nuxeo.ecm.platform.audio.jsf",
        "org.nuxeo.ecm.platform.audit.web",
        "org.nuxeo.ecm.platform.comment.web",
        "org.nuxeo.ecm.platform.contentview.jsf",
        "org.nuxeo.ecm.directory.web",
        "org.nuxeo.ecm.platform.forms.layout.client",
        "org.nuxeo.ecm.platform.forms.layout.io",
        "org.nuxeo.ecm.platform.forms.layout.io.plugins",
        "org.nuxeo.ecm.platform.picture.jsf",
        "org.nuxeo.ecm.platform.io.web",
        "org.nuxeo.ecm.platform.login.token.jsf",
        "org.nuxeo.ecm.platform.notification.web",
        "org.nuxeo.ecm.platform.publisher.web",
        "org.nuxeo.ecm.relations.web",
        "org.nuxeo.ecm.platform.rendition.web",
        "org.nuxeo.ecm.platform.suggestbox.jsf",
        "org.nuxeo.ecm.platform.tag.web",
        "org.nuxeo.ecm.platform.task.web",
        "org.nuxeo.ecm.platform.ui.select2",
        "org.nuxeo.ecm.platform.ui",
        "org.nuxeo.ecm.platform.userworkspace.web",
        "org.nuxeo.ecm.platform.video.jsf",
        "org.nuxeo.ecm.webapp.ui",
        "org.nuxeo.ecm.webapp.base",
        "org.nuxeo.ecm.webapp.core",
        "org.nuxeo.ecm.platform.preview.jsf",
        "org.nuxeo.ecm.platform.routing.dashboard",
        "org.nuxeo.ecm.platform.routing.default.jsf",
        "org.nuxeo.ecm.platform.routing.dm",
        "org.nuxeo.ecm.platform.routing.web",
        "org.nuxeo.search.ui",
        "org.nuxeo.theme.migration",
        "org.nuxeo.ecm.user.center",
        "org.nuxeo.ecm.user.center.dashboard",
        "org.nuxeo.ecm.user.center.dashboard.jsf",
        "org.nuxeo.ecm.user.center.notification",
        "org.nuxeo.ecm.user.center.oauth",
        "org.nuxeo.ecm.user.center.profile.jsf",
        "org.nuxeo.web.resources.jsf"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-jsf-ui-2021.63.8",
      "id": "nuxeo-jsf-ui-2021.63.8",
      "name": "nuxeo-jsf-ui",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo JSF UI",
      "version": "2021.63.8"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1732721792848,
  "version": "2021.63"
}